import {
	defineStore
}
from "pinia";

import {
	ref
} from "vue";

import {
	loginAPI,
	registerAPI,
	forgetPasswordAPI,
} from '../apis/loginAPI.js';


export const useLoginStore = defineStore('login', () => {
	let userInfo = ref({})

	/**
	 * 用户登录
	 * 执行用户登录的 API
	 * @param {Object} params 用户输入的请求参数
	 * @return {Object} 返回完整的响应对象
	 */
	function userLogin(params) {
		return loginAPI(params).then(res => {
			if (res.status === 200) {
				userInfo.value = res.data.result;

				return res;
			} else {
				return false;
			}
		})
	};

	/**
	 * 用户注册
	 * 执行用户注册的 API
	 * @param {Object} params 用户输入的请求参数
	 * @return {Object} 返回完整的响应对象
	 */
	function userRegister(params) {
		return registerAPI(params).then(res => {
			if (res.status === 200) {
				userInfo.value = res.data.result;

				return res;
			} else {
				return false;
			}
		})
	};

	function userForgetPassword(params) {
		return forgetPasswordAPI(params).then(res => {
			if (res.status === 200) {
				userInfo.value = res.data.result;

				return res;
			} else {
				return false;
			}
		})
	}

	return {
		userInfo,
		userLogin,
		userRegister,
		userForgetPassword
	}
}, {
	persist: true
});